1 Set-up

2 Purpose

This report generates some PEEP-II ratings data visualizations relevant for individual participants.

3 Import data

The cleaned data can be found at data/csv/peep-II-ratings-demog.csv.

ratings_demo <- read_csv('data/csv/peep-II-ratings-demog.csv')
## Parsed with column specification:
## cols(
##   .default = col_character(),
##   fam_id = col_double(),
##   nov_id = col_double(),
##   run = col_double(),
##   sound_index = col_double(),
##   happy_rating = col_double(),
##   angry_rating = col_double(),
##   sad_rating = col_double(),
##   know_speaker = col_double(),
##   scared_rating = col_double(),
##   child_yrs = col_double()
## )
## See spec(...) for full column specifications.

4 Preparing to visualize

4.1 Overall strategy

For the JECP manuscript, we focus on intensity ratings for the target prosody. That is, we compare a child’s angry_rating of recordings intended by the speaker to convey anger, and so forth. We ask:

  1. Do children rate their own mothers’ voices as more intense than unfamiliar mothers’ voices?
  2. Do acoustic properties account for children’s intensity ratings?

We are not especially concerned here with differences by script, run, or order although these may occur. Since we did not ask children to rate ‘how un-emotional or neutral’ a recording was, we drop consideration of ratings of neu or non-emotional prosody.

4.2 Create unitary intensity variable

Create a single intensity_rating variable from the {happy, angry, sad}_rating variables and an emotion_rated variable to indicate the emotion the rater was evaluating at the time.

intensity <- ratings_demo %>%
  tidyr::gather(., key = "emotion_rated", value = "intensity_rating", `happy_rating`:`sad_rating`) %>%
  dplyr::select_all(.) %>%
  dplyr::mutate(., emotion_rated = stringr::str_sub(stringr::str_extract(emotion_rated, 'happy|angry|sad'), 1, 3))
str(intensity)
## Classes 'tbl_df', 'tbl' and 'data.frame':    10668 obs. of  26 variables:
##  $ fam_id             : num  1 1 1 1 1 1 1 1 1 1 ...
##  $ nov_id             : num  6 6 6 6 6 6 6 6 6 6 ...
##  $ run                : num  1 1 1 1 1 1 1 1 1 1 ...
##  $ order              : chr  "a" "a" "a" "a" ...
##  $ sound_index        : num  1 2 3 4 5 6 7 8 9 10 ...
##  $ snd_file           : chr  "wav/006/norm/006-neu-hlp-a.wav" "wav/001/norm/001-hap-tlk-a.wav" "wav/006/norm/006-ang-chk-a.wav" "wav/006/norm/006-sad-tlk-a.wav" ...
##  $ how_feel           : chr  "neu" "neu" "neu" "neu" ...
##  $ know_speaker       : num  1 2 5 3 4 3 4 4 5 4 ...
##  $ scared_rating      : num  NA NA NA NA NA NA NA NA NA NA ...
##  $ speaker            : chr  "006" "001" "006" "006" ...
##  $ prosody            : chr  "neu" "hap" "ang" "sad" ...
##  $ script             : chr  "hlp" "tlk" "chk" "tlk" ...
##  $ speaker_familiarity: chr  "nov" "fam" "nov" "nov" ...
##  $ two_parent_fam     : chr  "yes" "yes" "yes" "yes" ...
##  $ mother_gender      : chr  "Female" "Female" "Female" "Female" ...
##  $ mother_race        : chr  "white" "white" "white" "white" ...
##  $ mother_latinx      : chr  "no" "no" "no" "no" ...
##  $ other_gender       : chr  "Male" "Male" "Male" "Male" ...
##  $ other_race         : chr  "White" "White" "White" "White" ...
##  $ other_latinx       : chr  "No" "No" "No" "No" ...
##  $ child_gender       : chr  "Female" "Female" "Female" "Female" ...
##  $ child_race         : chr  "White" "White" "White" "White" ...
##  $ child_latinx       : chr  "No" "No" "No" "No" ...
##  $ child_yrs          : num  8.85 8.85 8.85 8.85 8.85 ...
##  $ emotion_rated      : chr  "hap" "hap" "hap" "hap" ...
##  $ intensity_rating   : num  2 4 1 1 1 1 1 1 1 1 ...

Next, we select the intensity ratings for circumstances when the emotion_rated equals the prosody.

intensity <- intensity %>%
  filter(., emotion_rated == prosody)

Now we can move on to plotting.

5 Group plots

We’ll start with group plots since we’ve done these before.

5.1 Histogram of ratings by speaker and prosody

intensity <- intensity %>%
  filter(intensity_rating != 0) 

intensity %>%
  ggplot(.) +
  aes(x = intensity_rating, fill = speaker_familiarity) +
  facet_grid(prosody ~ .) +
  geom_bar(position = "dodge")

The grouped plot seems to work, so let’s divide this up into panels to see finer-grained results.

5.2 Histogram by script and target prosody

intensity <- intensity %>%
  filter(intensity_rating != 0) 

intensity %>%
  ggplot(.) +
  aes(x = intensity_rating, fill = speaker_familiarity) +
  facet_grid(prosody ~ script) +
  geom_bar(position = "dodge")

There are some differences by script and emotion. The checkbook chk script shows flat ratings for happiness hap. The sad prosodies are rated less intensely sad by children, regardless of the script. The familiar fam speaker (mother) is generally rated as more intensely angry and happy across most of the scripts.

6 Individual level plots

To really understand what’s happening, we should look at plots by individuals.

fam_ids <- unique(intensity$fam_id)

6.1 Family 1 | 1 of 51

There are two different script types, a and b for each script. So, there should be four data points in each of the panels above for each participant. Here’s an attempt to visualize these for a single participant.

intensity %>%
  filter(intensity_rating != 0,
         fam_id == 1) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

If raters consistently rated the familiar speaker as more intensely emotional, then the slope of these paired lines should be downward to the right. We see the expected pattern in five conditions: hlp + ang, tlk + hap, and to a lesser extent in tlk + ang, chk + hap, and din + sad. Several (4) conditions are a wash: chk + ang, din + ang, din + hap, hlp + hap. Three show the opposite pattern: hlp + sad, tlk + sad, and less so din + sad.

Let’s also plot a ‘summary’ for this participant to see the whole set of ratings.

intensity %>%
  filter(intensity_rating != 0,
         fam_id == 1) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i = 2

6.2 Family Family 2 | 2 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.3 Family Family 3 | 3 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.4 Family Family 5 | 4 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.5 Family Family 6 | 5 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.6 Family Family 8 | 6 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.7 Family Family 9 | 7 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.8 Family Family 11 | 8 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.9 Family Family 12 | 9 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.10 Family Family 13 | 10 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.11 Family Family 14 | 11 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.12 Family Family 15 | 12 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.13 Family Family 18 | 13 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.14 Family Family 19 | 14 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.15 Family Family 21 | 15 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.16 Family Family 22 | 16 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1

6.17 Family Family 23 | 17 of 51

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating, group = order) +
  facet_grid(prosody ~ script) +
  geom_point(aes(color = speaker_familiarity)) +
  geom_line(aes(linetype = order)) +
  scale_y_continuous(limits = c(1,4))

intensity %>%
  filter(intensity_rating != 0,
         fam_id == fam_ids[i]) %>%
  ggplot(.) +
  aes(x = speaker_familiarity, y = intensity_rating) +
  geom_violin() +
  geom_point(position = position_jitter(width = 0.1, height = 0.0), aes(color = script)) +
  scale_y_continuous(limits = c(1,4))

i <- i + 1